import { request } from '../../request/index.js';
import regeneratorRuntime from '../../lib/runtime/runtime';
Page({
  /**
   * 页面的初始数据
   */
  data: {
    //左侧菜单数据
    leftMenuList: [],
    //右侧商品数据
    rightContent: [],
    //控制索引
    currentIndex: 0,
    //设置右侧滚动条的位置
    scrollTop: 0
  },
  //接口的全部数据
  Cates: [],
  /** 
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    /*
      1 判断本地存储是否有旧的数据
        如果是没有本地数据的话，按照这种格式存储
        {time:Date.now(),data[...]}
      2 没有旧的数据 直接发送新的请求
      3 有旧的数据 并且旧数据没有过期 ，就使用 本地存储中的旧数据即可
    */ 
    // this.getCateArr() 
    //1 获取本地存储中的数据
    const Cates = wx.getStorageSync("cates");
    //2 判断
    if (!Cates) {
      //不存在的话，直接发送请求
      this.getCateArr() 
    }else {
      //存在缓存数据 定义过期时间10s，超过设定时间后重新发送请求
      if (Date.now() - Cates.time > 1000 * 40) {
        //超过设定时间，重新发送
        this.getCateArr()
      }else {
        //没超过设定时间
        this.Cates = Cates.data
        let leftMenuList = this.Cates.map(v => v.cat_name)
        let rightContent = this.Cates[0].children
        this.setData({
          leftMenuList,
          rightContent
        })
      }
    }
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },
  //获取分类数据
  async getCateArr() {
    // request({
    //   url: '/categories'
    // }).then((result) => {
    //   // console.log(result)
    //   this.Cates = result

    //   //把接口的数据直接存储到本地存储中
    //   wx.setStorageSync("cates", {time:Date.now(),data:this.Cates});
        

    //   //构造左侧的大菜单数据
    //   let leftMenuList = this.Cates.map(v => v.cat_name)
    //   //构造右侧的商品数据
    //   let rightContent = this.Cates[0].children
    //   this.setData({
    //     leftMenuList,
    //     rightContent
    //   })
    // })


    //使用es7中的async方法
    const result = await request({ url: '/categories' })
    this.Cates = result
    //把接口的数据直接存储到本地存储中
    wx.setStorageSync("cates", {time:Date.now(),data:this.Cates});
    //构造左侧的大菜单数据
    let leftMenuList = this.Cates.map(v => v.cat_name)
    //构造右侧的商品数据
    let rightContent = this.Cates[0].children
    this.setData({
      leftMenuList,
      rightContent
    })
  },
  //点击左侧按钮事件
  handleItemTap(e) {
    // console.log(e.currentTarget.dataset)
    let {index} = e.currentTarget.dataset
    let rightContent = this.Cates[index].children
    this.setData({
      currentIndex: index,
      rightContent, 
      //当左侧按钮点击时，让右侧滚动条距离顶部的距离永远是0
      scrollTop: 0
    })
  }

})